package com.train.webadmin.app.model;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.util.Date;

/**
 * 前端路由实体对象。
 *
 * @author xulei
 * @date 2025-03-07
 */
@Data
@TableName(value = "app_router")
public class AppRouter {

    /**
     * 菜单ID。
     */
    @TableId(value = "menu_id", type = IdType.AUTO)
    private Long menuId;

    /**
     * 菜单名称。
     */
    @TableField(value = "menu_name")
    private String menuName;

    /**
     * 父菜单ID。
     */
    @TableField(value = "parent_id")
    private Long parentId;

    /**
     * 显示顺序。
     */
    @TableField(value = "order_num")
    private Integer orderNum;

    /**
     * 路由地址。
     */
    @TableField(value = "path")
    private String path;

    /**
     * 路由参数。
     */
    @TableField(value = "query")
    private String query;

    /**
     * 是否为外链（0是 1否）。
     */
    @TableField(value = "is_frame")
    private Integer isFrame;

    /**
     * 菜单状态（0显示 1隐藏）。
     */
    @TableField(value = "visible")
    private Integer visible;

    /**
     * 菜单状态（0正常 1停用）。
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * [1表示老师 0 表示学生]。
     */
    @TableField(value = "role")
    private Integer role;

    /**
     * 菜单图标。
     */
    @TableField(value = "icon")
    private String icon;

    /**
     * 创建时间。
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 创建人。
     */
    @TableField(value = "create_user_id")
    private Long createUserId;

    /**
     * 更新时间。
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 更新人。
     */
    @TableField(value = "update_user_id")
    private Long updateUserId;

    /**
     * 备注。
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 逻辑删除标记字段(1: 正常 -1: 已删除)。
     */
    @TableLogic
    @TableField(value = "deleted_flag")
    private Integer deletedFlag;
}
